package cn.e4j.modular.crm.service;

import cn.e4j.core.dto.impl.Dto;
import cn.e4j.modular.crm.entity.GwcaT;
import cn.e4j.modular.crm.entity.GwcbT;
import cn.e4j.modular.crm.entity.GwccT;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 销售合同资料表 服务类
 * </p>
 *
 * @author miaoyl
 * @since 2019-11-26
 */
public interface GwcaTService extends IService<GwcaT> {

    /**
     * 获取税种、税率、汇率类型、汇率及客户发货地址
     */
    Dto getGwakData(Dto dto);

    /**
     * 销售合同新增
     */
    void addData(List<GwcbT> gwcbTList, List<GwccT> gwccTList, GwcaT gwcaT);

    /**
     * 销售合同修改
     */
    void editData(List<GwcbT> gwcbTList, List<GwccT> gwccTList, GwcaT gwcaT);

    /**
     * 销售合同删除
     */
    void deleteData(GwcaT gwcaT);

    /**
     * 销售合同批量删除
     */
    void delDataBatch(List<GwcaT> gwcaTList);

    //获取合同计划
    List<Map<String, Object>> getGwcbData(Dto dto);

    //获取收款计划
    List<Map<String, Object>> getGwccData(Dto dto);

    //获取合同计划
    List<Map<String, Object>> getGwcbList(Page<Object> page, Dto dto);

    //获取收款计划
    List<Map<String, Object>> getGwccList(Page<Object> page, Dto dto);

    Dto updateStatus(List<GwcaT> gwggTList);

    String createOrder(String gwcadocno, String type);

    List<Dto> getBookmarkData(Page page, Dto inDto);
}
